var genderMapper = function(value, entry){
		if(value == "1"){return "男";}
		if(value == "2"){return "女";}
}
var formStateMapper = function(value, entry){
	return FORM_STATES[value];
}
var noteStateMapper = function(value, entry){
	return FORM_STATES[value];
}
function NgAdminConfig(){
	var adminConfig = {
		'department' : {
			fields : {
				'id' : { label : 'ID' },
				'name' : { label : '名称'},
				'parentid' : {label : '上级', type : 'reference', target : { entity : 'department', field : 'name'}}
			},
			list : {
				sortField : 'parentid', sortDir : 'ASC',
				fields : ['id', 'name', 'parentid'],
				title : '部门列表',
				listActions : ['show'],
				actions : ['export']
			},
			show : {
				fields : ['id', 'name', 'parentid'], title : '查看部门',
			}
		},
		'user':{
			identifier : 'userid',
			fields : {
				'userid' : { label : '员工号'},
				'avatar' : { label : '头像', template :'<img src="{{ entry.values.avatar }}64" width="28" height="28">'},
				'name' : { label : '姓名'},
				'gender' : { label : '性别' , map : genderMapper},
				'mobile' : { label : '电话'},
				'email' : { label : '邮箱'},
				'weixinid' : { label : '微信'},
				'department' : {label : '部门', type : 'reference_many', target : {entity : 'department', field : 'name'}}
			},
			list : {
				fields : ['userid','avatar','name','gender','mobile','email', 'department','weixinid'],
				title : '员工列表',
				listActions : ['show'],
				actions : ['export']
			},
			show : {
				fields : ['userid','avatar','name','gender','mobile','email','department','weixinid'], title : '查看员工',
			},
		},
		
		'formtype' : {
			
			fields : {
				'id' : { label : 'ID' },
				'name' : { label : '名称'},
				'seq' : { label : '顺序', type : 'number' },
				'updatedAt' : { label : '更新时间', type : 'datetime' },
				'props' : {
					label : '属性', type : 'reference_many',
					target : {entity : 'formprop', fields : 'name'}
				}
			},
			
			list : {
				sortField : 'seq', sortDir : 'ASC',
				fields : ['id', 'name', 'seq', /*'props',*/ 'updatedAt'],
				title : '报表类型',
				listActions : ['show','edit','delete'],
				actions : ['create', 'export']
			},
			
			edit : {
				fields : ['name', 'seq'], title : '编辑报表类型',
			},
			
			create : {
				fields : ['name', 'seq'], title : '新建报表类型',
			},
			
			delete : {
				fields : ['name', 'seq'], title : '删除报表类型',
			},
			
			show : {
				fields : ['name', 'seq', 'updatedAt'], title : '查看报表类型',
			}
			
		},
		
		'leavetype' : {
			fields : {
				'id' : { label : 'ID' },
				'name' : { label : '名称'},
				'seq' : { label : '顺序', type : 'number' },
				'updatedAt' : { label : '更新时间', type : 'datetime' }
			},
			
			list : {
				sortField : 'seq', sortDir : 'ASC',
				fields : ['id', 'name', 'seq', 'updatedAt'],
				title : '请假类型',
				listActions : ['show','edit','delete'],
				actions : ['create', 'export']
			},
			show : {
				fields : ['name', 'seq'], title : '查看请假类型',
			},
			create : {
				fields : ['name', 'seq'], title : '新建请假类型',
			},
			
			delete : {
				fields : ['name', 'seq'], title : '删除请假类型',
			},
		},
		
		'form' : {
			fields : {
				'id' : { label : 'ID', isDetailLink : false },
				'name' : { label : '名称',template :'<a href="#/form/{{entry.values.id}}">{{ entry.values.name }}</a>'},
				'type' : { label : '类型', type : 'reference', target : { entity : 'formtype', field : 'name'} },
				'description' : { label : '描述', },
				'owner' : { label : '发起者', type : 'reference', target : { entity : 'user', field : 'name'}},
				'state' : { label : '状态', map : formStateMapper},
				'updatedAt' : { label : '创建时间', type : 'datetime' },
			},
			
			list : {
				sortField : 'updatedAt', sortDir : 'DESC',
				fields : ['id', 'name', 'type', 'description', 'owner', 'state', 'updatedAt'],
				title : '报表',
				listActions : ['show', 'delete'],
				//batchActions : ['delete','print']
				actions : ['export']
			},
			show : {
				fields : ['name', 'type', 'description','owner','state', 'updatedAt'], title : '查看报表',
			},
			dashboard : {
				fields : ['name', 'type', 'state'],
				title : '报表', order : 1, perPage : 5, sortField : 'updatedAt', sortDir : 'DESC',
			}
		},
		
		'leavenote' : {
			fields : {
				'id' : { label : 'ID' },
				'startTime' : { label : '开始时间', type : 'datetime'},
				'endTime' : { label : '结束时间', type : 'datetime' },
				'hours' : { label : '小时数', type : 'number' },
				'reason' : { label : '原因',},
				'type' : { label : '请假类型', type : 'string', map: function(value, entry){
					return value.name;
				}},
				'owner' : { label : '申请者', type : 'reference', target : { entity : 'user', field : 'name'}},
				'state' : { label : '状态', map : formStateMapper},
				'updatedAt' : { label : '更新时间', type : 'datetime' }
			},
			list : {
				sortField : 'updatedAt', sortDir : 'DESC',
				fields : ['id', 'owner', 'startTime', 'endTime', 'hours', 'reason', 'type', 'state', 'updatedAt'],
				title : '请假条',
				listActions : ['show', 'delete'],
				actions : ['export'],
				url : 'note/list'
			},
			show : {
				fields : ['id', 'owner', 'startTime', 'endTime', 'hours', 'reason', 'type', 'state', 'updatedAt'], title : '查看请假条',
			},
			dashboard : {
				fields : ['id', 'owner', 'hours', 'type', 'state', 'updatedAt'],
				title : '请假条', order : 1, perPage : 5, sortField : 'updatedAt', sortDir : 'DESC',
			},
			
			
		},
		
		'formprop' : {
			fields : {
				'id' : { label : 'ID' },
				'name' : { label : '名称'},
				'seq' : { label : '顺序', type : 'number' },
				'validator' : {label : '验证规则', type : 'text'},
				'formType' : {label : '所属报表', type : 'reference', target : { entity : 'formtype', field : 'name'}}
			},
			list : {
				sortField : 'formType', sortDir : 'ASC',
				fields : ['id', 'name', 'seq', 'validator', 'formType'],
				title : '报表属性列表',
				listActions : ['show','edit','delete'],
				actions : ['create', 'export']
			},
			show : {
				fields : ['id','name', 'seq', 'validator', 'formType'], title : '查看报表属性',
			},
			edit : {
				fields : ['name', 'seq', 'validator', 'formType'], title : '编辑报表属性',
			},
			create : {
				fields : ['name', 'seq', 'validator', 'formType'], title : '新建报表属性',
			},
			
			delete : {
				fields : ['id','name', 'seq', 'validator', 'formType'], title : '删除报表属性',
			},
		},
		
		'post' : {
			fields : {
				'id' : { label : 'ID' },
				'content' : { label : '内容', type : 'wysiwyg' },
				'owner' : { label : '作者', type : 'reference', target : { entity : 'user', field : 'name'}},
				'likes' : { label : '赞', type : 'number' },
				'updatedAt' : { label : '更新时间', type : 'datetime' }
			},
			
			list : {
				sortField : 'updatedAt', sortDir : 'DESC',
				fields : ['id', 'owner', 'content', 'likes','updatedAt'],
				title : '同事圈文章',
				listActions : ['show','delete'],
				actions : ['export']
			},
			
			delete : {
				fields : ['id','content', 'owner', 'likes','updatedAt'], title : '删除文章',
			},
			
			show : {
				fields : ['id','content', 'owner', 'likes','updatedAt'], title : '查看文章',
			}
			
		},
		
		'comment' : {
			fields : {
				'id' : { label : 'ID' },
				'content' : { label : '内容', type : 'wysiwyg' },
				'postid' : { label : '文章',  type : 'reference', target : { entity : 'post', field : 'content'}},
				'owner' : { label : '评论者', type : 'reference', target : { entity : 'user', field : 'name'}},
				'updatedAt' : { label : '更新时间', type : 'datetime' }
			},
			
			list : {
				sortField : 'updatedAt', sortDir : 'DESC',
				fields : ['id', 'content', 'owner', 'postid', 'updatedAt'],
				title : '文章评论',
				listActions : ['show','delete'],
				actions : ['export']
			},
			
			delete : { title : '删除评论'},
			
			show : {
				fields : ['id', 'content', 'owner', 'postid', 'updatedAt'], title : '查看评论',
			}
			
		},
		
		'vacation' : {
			fields : {
				'id' : { label : 'ID' },
				'owner' : { label : '员工号', type : 'reference', target : { entity : 'user', field : 'name'}},
				'hours' : { label : '剩余年假', type : 'number' }
			},
			list : {
				sortField : 'owner', sortDir : 'ASC',
				fields : ['id','owner', 'hours'],
				title : '年假',
				listActions : ['edit','delete'],
				actions : ['create']
			},
			show : {
				fields : ['id','owner', 'hours'], title : '年假',
			},
			edit : {
				fields : ['id','owner', 'hours'], title : '编辑年假',
			},
			create : {
				fields : ['owner', 'hours'], title : '新建年假',
			},
		},
		
		'news' : {
			fields : {
				'id' : { label : 'ID' },
				'content' : { label : '内容', type : 'wysiwyg' },
				'title' : { label : '标题'},
				'updatedAt' : { label : '更新时间', type : 'datetime' }
			},
			
			list : {
				sortField : 'updatedAt', sortDir : 'DESC',
				fields : ['id', 'title', 'updatedAt'],
				title : '新闻公告',
				listActions : ['show','delete'],
				actions : ['create']
			},
			
			delete : {
				fields : ['id', 'title', 'updatedAt'], title : '删除新闻',
			},
			
			show : {
				fields : ['id', 'title','content', 'updatedAt'], title : '查看新闻',
			},
			edit : {
				fields : ['title','content'], title : '编辑新闻',
			},
			create : {
				fields : ['title','content'], title : '新建新闻',
			},
			
		},
	};
	
	return adminConfig;
}
